import java.util.*;

public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList();
        ArrayList<Integer> list2 = new ArrayList();

        Scanner scanner = new Scanner(System.in);

        while(!scanner.hasNext("-1")) {
            int x = Integer.valueOf(scanner.nextInt());
            list1.add(x);
        }

        //理解：
        //next()开始读取时：不读取字符前后的空格/tab键，只读取字符，读取过程中一直遇到空格/tab键回车截至。
        //nextInt()：会读取数字，而将结束标志空格/回车/tab留在缓冲区，所以nextInt后面不跟nextLine()
        //nextLine()：读取字符前后的空格/tab键，直到遇到回车键结束。如果一开始就遇到回车键，那就还没开始就直接结束了。
        //重点：用next读取"-1",如果用nextLine则出错，因为会读取上一个nextInt留下的回车键，连"-1"都没有读到

        //next()：返回空格/回车结束标识符前的字符串，但不处理标识符。如果以回车键作为结束标志，后面不能跟nextLine()
        //nextInt()：返回数字，但结束标志回车/空格还留在缓冲区，如果以回车键作为结束标志，后面不能跟nextLine()
        //nextLine()：会把结束标识符前的内容连同标识符一同截取，但返回的时候不带标识符，相当于丢弃了
        String s = scanner.next();
        while(!scanner.hasNext("-1")) {
            int x = Integer.valueOf(scanner.nextInt());
            list2.add(x);
        }

        ArrayList<Integer> c = MergeList(list1,list2);
        System.out.println(c.toString());

    }

    public static ArrayList<Integer> MergeList(ArrayList<Integer> a, ArrayList<Integer> b) {
        ArrayList<Integer> c = new ArrayList<>();
        int i = 0, j=0, k=0;
        while(i<a.size() && j<b.size()) {
            int ai = a.get(i);
            int bj = b.get(j);
            if(ai < bj) {
                c.add(ai);
                i++;
            }else {
                c.add(bj);
                j++;
            }
        }

        while(i<a.size()) {
            c.add(a.get(i));
            i++;
        }

        while(j<b.size()) {
            c.add(b.get(j));
            j++;
        }
        return c;
    }
}